Management of user sessions is an important feature of any server based product. Many servers have a component that is responsible for managing the sessions that are active on the server. In some cases, servers are responsible for the management of sessions that are created by different types of clients connecting to the server.
Generally, server applications are multi-threaded applications that interact with multiple clients using a request-response mechanism. A request from the client triggers creation of a new thread in the server that is responsible for handling the request. The request, which is also typically called a session, exists with the servers as long as the client is connected to the server. The session includes the user's context and the server uses the session to manage the request. Typically, the session is stored in either a database or a file. However, at any given instance the server has several sessions in its memory. Further, in systems that support multi-server configurations there is often a need to persist the session or part of the session to provide external control of the sessions to the administrators and also for licensing purposes.